home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / CIncludes / Palettes.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-17  |  6.9 KB  |  252 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Palettes.h
  3.  
  4.      Contains:    Palette Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1987-1993, 1995-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __PALETTES__
  18. #define __PALETTES__
  19.  
  20. #ifndef __QUICKDRAW__
  21. #include <Quickdraw.h>
  22. #endif
  23.  
  24.  
  25.  
  26. #if PRAGMA_ONCE
  27. #pragma once
  28. #endif
  29.  
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33.  
  34. #if PRAGMA_IMPORT
  35. #pragma import on
  36. #endif
  37.  
  38. #if PRAGMA_STRUCT_ALIGN
  39.     #pragma options align=mac68k
  40. #elif PRAGMA_STRUCT_PACKPUSH
  41.     #pragma pack(push, 2)
  42. #elif PRAGMA_STRUCT_PACK
  43.     #pragma pack(2)
  44. #endif
  45.  
  46.  
  47. enum {
  48.     pmCourteous                    = 0,                            /*Record use of color on each device touched.*/
  49.     pmDithered                    = 0x0001,
  50.     pmTolerant                    = 0x0002,                        /*render ciRGB if ciTolerance is exceeded by best match.*/
  51.     pmAnimated                    = 0x0004,                        /*reserve an index on each device touched and render ciRGB.*/
  52.     pmExplicit                    = 0x0008,                        /*no reserve, no render, no record; stuff index into port.*/
  53.     pmWhite                        = 0x0010,
  54.     pmBlack                        = 0x0020,
  55.     pmInhibitG2                    = 0x0100,
  56.     pmInhibitC2                    = 0x0200,
  57.     pmInhibitG4                    = 0x0400,
  58.     pmInhibitC4                    = 0x0800,
  59.     pmInhibitG8                    = 0x1000,
  60.     pmInhibitC8                    = 0x2000,                        /* NSetPalette Update Constants */
  61.     pmNoUpdates                    = 0x8000,                        /*no updates*/
  62.     pmBkUpdates                    = 0xA000,                        /*background updates only*/
  63.     pmFgUpdates                    = 0xC000,                        /*foreground updates only*/
  64.     pmAllUpdates                = 0xE000                        /*all updates*/
  65. };
  66.  
  67.  
  68. struct ColorInfo {
  69.     RGBColor                         ciRGB;                        /*true RGB values*/
  70.     short                             ciUsage;                    /*color usage*/
  71.     short                             ciTolerance;                /*tolerance value*/
  72.     short                             ciDataFields[3];            /*private fields*/
  73. };
  74. typedef struct ColorInfo                ColorInfo;
  75. typedef ColorInfo *                        ColorInfoPtr;
  76. typedef ColorInfoPtr *                    ColorInfoHandle;
  77.  
  78. struct Palette {
  79.     short                             pmEntries;                    /*entries in pmTable*/
  80.     short                             pmDataFields[7];            /*private fields*/
  81.     ColorInfo                         pmInfo[1];
  82. };
  83. typedef struct Palette                    Palette;
  84. typedef Palette *                        PalettePtr;
  85. typedef PalettePtr *                    PaletteHandle;
  86. EXTERN_API( void )
  87. InitPalettes                    (void)                                                        ONEWORDINLINE(0xAA90);
  88.  
  89. EXTERN_API( PaletteHandle )
  90. NewPalette                        (short                     entries,
  91.                                  CTabHandle             srcColors,
  92.                                  short                     srcUsage,
  93.                                  short                     srcTolerance)                        ONEWORDINLINE(0xAA91);
  94.  
  95. EXTERN_API( PaletteHandle )
  96. GetNewPalette                    (short                     PaletteID)                            ONEWORDINLINE(0xAA92);
  97.  
  98. EXTERN_API( void )
  99. DisposePalette                    (PaletteHandle             srcPalette)                            ONEWORDINLINE(0xAA93);
  100.  
  101. EXTERN_API( void )
  102. ActivatePalette                    (WindowPtr                 srcWindow)                            ONEWORDINLINE(0xAA94);
  103.  
  104. EXTERN_API( void )
  105. SetPalette                        (WindowPtr                 dstWindow,
  106.                                  PaletteHandle             srcPalette,
  107.                                  Boolean                 cUpdates)                            ONEWORDINLINE(0xAA95);
  108.  
  109. EXTERN_API( void )
  110. NSetPalette                        (WindowPtr                 dstWindow,
  111.                                  PaletteHandle             srcPalette,
  112.                                  short                     nCUpdates)                            ONEWORDINLINE(0xAA95);
  113.  
  114. EXTERN_API( PaletteHandle )
  115. GetPalette                        (WindowPtr                 srcWindow)                            ONEWORDINLINE(0xAA96);
  116.  
  117. EXTERN_API( void )
  118. CopyPalette                        (PaletteHandle             srcPalette,
  119.                                  PaletteHandle             dstPalette,
  120.                                  short                     srcEntry,
  121.                                  short                     dstEntry,
  122.                                  short                     dstLength)                            ONEWORDINLINE(0xAAA1);
  123.  
  124. EXTERN_API( void )
  125. PmForeColor                        (short                     dstEntry)                            ONEWORDINLINE(0xAA97);
  126.  
  127. EXTERN_API( void )
  128. PmBackColor                        (short                     dstEntry)                            ONEWORDINLINE(0xAA98);
  129.  
  130. EXTERN_API( void )
  131. AnimateEntry                    (WindowPtr                 dstWindow,
  132.                                  short                     dstEntry,
  133.                                  const RGBColor *        srcRGB)                                ONEWORDINLINE(0xAA99);
  134.  
  135. #if TARGET_OS_MAC
  136.     #define MacAnimatePalette AnimatePalette
  137. #endif
  138. EXTERN_API( void )
  139. MacAnimatePalette                (WindowPtr                 dstWindow,
  140.                                  CTabHandle             srcCTab,
  141.                                  short                     srcIndex,
  142.                                  short                     dstEntry,
  143.                                  short                     dstLength)                            ONEWORDINLINE(0xAA9A);
  144.  
  145. EXTERN_API( void )
  146. GetEntryColor                    (PaletteHandle             srcPalette,
  147.                                  short                     srcEntry,
  148.                                  RGBColor *                dstRGB)                                ONEWORDINLINE(0xAA9B);
  149.  
  150. EXTERN_API( void )
  151. SetEntryColor                    (PaletteHandle             dstPalette,
  152.                                  short                     dstEntry,
  153.                                  const RGBColor *        srcRGB)                                ONEWORDINLINE(0xAA9C);
  154.  
  155. EXTERN_API( void )
  156. GetEntryUsage                    (PaletteHandle             srcPalette,
  157.                                  short                     srcEntry,
  158.                                  short *                dstUsage,
  159.                                  short *                dstTolerance)                        ONEWORDINLINE(0xAA9D);
  160.  
  161. EXTERN_API( void )
  162. SetEntryUsage                    (PaletteHandle             dstPalette,
  163.                                  short                     dstEntry,
  164.                                  short                     srcUsage,
  165.                                  short                     srcTolerance)                        ONEWORDINLINE(0xAA9E);
  166.  
  167. EXTERN_API( void )
  168. CTab2Palette                    (CTabHandle             srcCTab,
  169.                                  PaletteHandle             dstPalette,
  170.                                  short                     srcUsage,
  171.                                  short                     srcTolerance)                        ONEWORDINLINE(0xAA9F);
  172.  
  173. EXTERN_API( void )
  174. Palette2CTab                    (PaletteHandle             srcPalette,
  175.                                  CTabHandle             dstCTab)                            ONEWORDINLINE(0xAAA0);
  176.  
  177. EXTERN_API( long )
  178. Entry2Index                        (short                     entry)                                TWOWORDINLINE(0x7000, 0xAAA2);
  179.  
  180. EXTERN_API( void )
  181. RestoreDeviceClut                (GDHandle                 gd)                                    TWOWORDINLINE(0x7002, 0xAAA2);
  182.  
  183. #if TARGET_OS_MAC
  184.     #define MacResizePalette ResizePalette
  185. #endif
  186. EXTERN_API( void )
  187. MacResizePalette                (PaletteHandle             p,
  188.                                  short                     size)                                TWOWORDINLINE(0x7003, 0xAAA2);
  189.  
  190. EXTERN_API( void )
  191. SaveFore                        (ColorSpec *            c)                                    THREEWORDINLINE(0x303C, 0x040D, 0xAAA2);
  192.  
  193. EXTERN_API( void )
  194. SaveBack                        (ColorSpec *            c)                                    THREEWORDINLINE(0x303C, 0x040E, 0xAAA2);
  195.  
  196. EXTERN_API( void )
  197. RestoreFore                        (const ColorSpec *        c)                                    THREEWORDINLINE(0x303C, 0x040F, 0xAAA2);
  198.  
  199. EXTERN_API( void )
  200. RestoreBack                        (const ColorSpec *        c)                                    THREEWORDINLINE(0x303C, 0x0410, 0xAAA2);
  201.  
  202. EXTERN_API( OSErr )
  203. SetDepth                        (GDHandle                 gd,
  204.                                  short                     depth,
  205.                                  short                     whichFlags,
  206.                                  short                     flags)                                THREEWORDINLINE(0x303C, 0x0A13, 0xAAA2);
  207.  
  208. EXTERN_API( short )
  209. HasDepth                        (GDHandle                 gd,
  210.                                  short                     depth,
  211.                                  short                     whichFlags,
  212.                                  short                     flags)                                THREEWORDINLINE(0x303C, 0x0A14, 0xAAA2);
  213.  
  214. EXTERN_API( short )
  215. PMgrVersion                        (void)                                                        TWOWORDINLINE(0x7015, 0xAAA2);
  216.  
  217. EXTERN_API( void )
  218. SetPaletteUpdates                (PaletteHandle             p,
  219.                                  short                     updates)                            THREEWORDINLINE(0x303C, 0x0616, 0xAAA2);
  220.  
  221. EXTERN_API( short )
  222. GetPaletteUpdates                (PaletteHandle             p)                                    THREEWORDINLINE(0x303C, 0x0417, 0xAAA2);
  223.  
  224. EXTERN_API( Boolean )
  225. GetGray                            (GDHandle                 device,
  226.                                  const RGBColor *        backGround,
  227.                                  RGBColor *                foreGround)                            THREEWORDINLINE(0x303C, 0x0C19, 0xAAA2);
  228.  
  229.  
  230.  
  231.  
  232. #if PRAGMA_STRUCT_ALIGN
  233.     #pragma options align=reset
  234. #elif PRAGMA_STRUCT_PACKPUSH
  235.     #pragma pack(pop)
  236. #elif PRAGMA_STRUCT_PACK
  237.     #pragma pack()
  238. #endif
  239.  
  240. #ifdef PRAGMA_IMPORT_OFF
  241. #pragma import off
  242. #elif PRAGMA_IMPORT
  243. #pragma import reset
  244. #endif
  245.  
  246. #ifdef __cplusplus
  247. }
  248. #endif
  249.  
  250. #endif /* __PALETTES__ */
  251.  
  252.